﻿using System;
using System.Collections.Generic;
using System.Text;
using Midapex.Net.Ftp;
using Midapex.Net;

namespace FtpServerConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            //Trace.Listeners.Add(new ConsoleTraceListener());

            //AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
            try
            {
                Console.WriteLine("********************************************************************");
                Console.WriteLine("Midapex Village FTP Server V2.1");
                Console.WriteLine("(C)2006-2008 Midapex Village");
                Console.WriteLine("********************************************************************");
                Console.WriteLine("");

                using (FtpServer server = new FtpServer())
                {
                    Console.WriteLine("测试帐号:anonymous(匿名登陆，具有读权限), ftp(密码:ftp,具有读写权限)");

                    /*
                     * 服务器的最大连接数
                     */
                    server.Capacity = 1000;

                    /*
                     * 连接超时时间
                     */
                    server.HeartBeatPeriod = 120000;  //120秒

                    /*
                     * 创建一个使用FTP的用户，
                     */
                    FtpUser user = new FtpUser("admin");
                    user.Password = "admin";
                    user.AllowWrite = true;
                    user.HomeDir = "d:\\";

                    /*
                     * 限制该帐号的用户的连接服务器的最大连接数
                     * 也就是限制该使用该帐号的FTP同时连接服务器的数量。
                     */
                    user.MaxConnectionCount = 2;

                    /*
                     * 限制用户的最大上传文件为20M，超过这个值上传文件会失败。
                     * 默认不限制该值，可以传输大文件。
                     */
                    user.MaxUploadFileLength = 1024 * 1024 * 20;
                    server.AddUser(user);

                    //把当前目录作为匿名用户的目录，测试目的(必须指定)
                    server.AnonymousUser.HomeDir = "d:\\";

                    server.Start();
                    Console.WriteLine("Press enter to exit...");
                    Console.ReadLine();
                   server.Stop();
                }
            }
            catch (System.Exception e)
            {
                NetDebuger.PrintErrorMessage("FATAL ERROR:" + e.Message);
            }
        }
    }
}
